

toast('脚本开始');
console.log("开始111111111")

// sleep(5000);

var storage = storages.create("douyin");
// 进入评论页
function goDetail(){
  let c1 = click(620,200);//点头像
  console.log('点击头像',c1);
  sleep(3500);
  // click(200,650); //关注
  // click('关注');
  // sleep(3000);

  if(text('私密账号').exists() || text('还没有作品').exists() || text('暂无作品').exists()){
    sleep(2000);
    checkAndBack();
    sleep(2000);
    checkAndBack();
    sleep(2000);
    return
  }
  let tempTopForGuanzhu = null;
  let targetElement = className("android.widget.FrameLayout").depth(2) // className("android.widget.ImageView")
    .filter(function (el) {
          // 获取元素的边界信息
          let elementBounds = el.bounds();
          // 这里设定想要的边界范围条件，比如以下示例是判断元素是否在屏幕上半部分
          return elementBounds.left === 612;
      })
    .findOne();

  if (targetElement) {
      // 如果找到了符合条件的元素，可以进行后续操作，比如点击它
      console.log('找到了关注右边按钮 ',targetElement);
      tempTopForGuanzhu = targetElement.bounds()
      // targetElement.click();
  } else {
      toast("未找到符合条件的元素");
  }
  console.log('tempTopForGuanzhu ',tempTopForGuanzhu)
  if(tempTopForGuanzhu !== null){
    if(!desc("私信").exists() ){
      if(randomAction('guanzhu')){
        click(200,tempTopForGuanzhu.centerY());//关注
        sleep(2000);
        // click(tempTopForGuanzhu.centerX(),tempTopForGuanzhu.centerY());//收起推荐
        // sleep(2000);
      }
    }
    click(150,tempTopForGuanzhu.centerY()+240); //第一个视频
    sleep(3500);
    if(randomAction('dianzan')){
      click(655,710);//点赞
      sleep(2000);
    }
    if(randomAction('shoucang')){
      click(660,984);//收藏
      sleep(2500);
    }
    if(randomAction('pinglun')){
      pinglunAction();
    }
    checkAndBack();
  }

  sleep(2000);
  checkAndBack();
  sleep(2000);
  checkAndBack();
  sleep(2000);
}

function checkAndBack(){
  if(!className("com.bytedance.ies.xelement.input.LynxInputView").exists() && !textEndsWith("人真实评价").exists()){
    back();
  }
}

// var storage = storages.create("douyin");
function randomAction(key){
  let re = false;
  let v =  parseInt( storage.get(key) ) /100;
  if(Math.random() < v){
    re = true;
  }
  return re;
}

/**
 * 执行评论操作
 */
function pinglunAction(){
  let pinglunContentArr = (storage.get("content")+'').split('\n');
  let index = Math.floor(Math.random() * pinglunContentArr.length);
  if(!storage.get("content")) return;
  let pinglunContent = pinglunContentArr[index];
  text("善语结善缘，恶言伤人心").findOne().click();
  sleep(1000);
  text("善语结善缘，恶言伤人心").findOne().setText(pinglunContent);
  sleep(1000);
  // console.log('发送',text("发送").findOne());
  let btnXY = text("发送").findOne().bounds();
  click(btnXY.centerX(),btnXY.centerY());
  sleep(1000);
}


// ============= 正式开始 =================
function main(){
  
  let tempClickTxt = '';
  let tempNums = [];
  let runCount = parseInt(storage.get('runCount'));
  console.log('runCount ',runCount)
  for(let j = 0;j<runCount;j++){
    let logos = className("com.lynx.tasm.behavior.ui.text.FlattenUIText").depth(2).visibleToUser().untilFind()
    console.log("找到了 " + logos.length + " 个符合条件的控件");
    // 判断是否到底部
    if(tempNums.length === 3){
      let ifEnd = true;
      tempNums.forEach(item=>{
        if(item !== logos.length){
          ifEnd = false
        }
      })
      if(ifEnd){
        console.log('重复几次都一样的元素，说明到底部了')
        break
      }
    }
    // 存储数据，用于判断是否到底部
    tempNums.push(logos.length)
    if(tempNums.length > 3){
      tempNums.shift();
    }
    console.log('tempNums ',tempNums)

    if (logos.length > 0) {
      // 如果找到了符合条件的控件，打印找到的数量等相关日志
      
      for (let i = 0; i < logos.length; i++) {
        
        // 例如，打印控件的bounds属性（代表位置和大小，仅为示例，可按实际需求修改）
        if((logos[i].bounds().left === 120 || logos[i].bounds().left === 165) && logos[i].text().indexOf('发布于') === -1 
          && logos[i].text().indexOf('该店的全部评价') === -1  && logos[i].text().indexOf('小时前') === -1 && logos[i].text().indexOf('天前') === -1 && logos[i].text().indexOf('河南') === -1
          && logos[i].text().indexOf('**') === -1 && logos[i].bounds().top > 180 && logos[i].bounds().top < 1240 && 
           tempClickTxt.indexOf(logos[i].text())  === -1){
          console.log("单独 ",logos[i].contentDescription) 
          
          tempClickTxt += ";"+ logos[i].text() ;
          
          let go1 = click(logos[i].bounds().left - 50,logos[i].bounds().top + 20);
          
          console.log('go1 ',go1)
          if(go1){
            sleep(5000);
            
            goDetail();
            
            break;
          }
      
        }
      }
    } else {
      console.log("未找到符合条件的控件");
    }
    
    let huadong = swipe(500, 800, 500, 300, 500);

    console.log('huadong ',huadong)
    sleep(1500);
  }


  // console.log(logos)
  console.log("最后执行结束的日志")

  toast('脚本结束');

}

main();